//菜单高度
var menuHeight = 0;
// 动画执行时间
var aniTime = 200;
/**
 *  是否开启
 */
var isStart = false;
/**
 *  上一个开启的菜单
 */
var oldMenuObj;
/** 隐藏孩子内容
 * @param {Object} obj 
 */
function hideMenuChilds(obj) {
	for (var i = 0; i < obj.children().length; i++) {
		obj.children(i).hide();
	}
}
/** 显示孩子内容
 * @param {Object} obj
 */
function showMenuChilds(obj) {
	for (var i = 0; i < obj.children().length; i++) {
		obj.children(i).show();
	}
}
/**   开启菜单
 * @param {Object} obj 触发功能按键
 * @param {Object} menuObj  菜单内容
 */
function openMenu(obj, menuObj) {
	try {
		// 如果发现已经开启了菜单就关闭它
		if (isStart) {
			if (oldMenuObj != null) {
				closeMenu(oldMenuObj)
			}
			return;
		}
		if (menuObj == null) {
			return;
		}
		menuObj.css('width', obj.width());
		menuObj.css('left', obj.position().left);
		// menuObj.css('top', obj.height() + obj.position().top);
		menuObj.css('top', obj.height());
		//获取高度
		if (menuHeight == 0) {
			menuHeight = menuObj.height();
		}
		//将高度置0
		menuObj.height(0);
		// 展示出菜单
		menuObj.show();
		// 隐藏菜单里面的内容
		hideMenuChilds(menuObj);
		// 线性开启菜单
		$({
			// 起始值
			countNum: 0
		}).animate({
			// 最终值
			countNum: menuHeight
		}, {
			// 动画持续时间
			duration: aniTime,
			easing: "linear",
			step: function () {
				// 设置每步动画计算的数值
				menuObj.css('height', Math.floor(this.countNum));
			},
			complete: function () {
				// 设置动画结束的数值
				menuObj.css('height', Math.floor(this.countNum));
				// 当菜单展示出来再展示菜单里面的内容(要不效果很尬 -，-！！！)
				showMenuChilds(menuObj);
				oldMenuObj = menuObj;
				// 设置开启菜单开关
				isStart = true;
			}
		});
	} catch (e) {
		console.log('COMBOBOX==' + e.description);
	}

}
/** 关闭
 * @param {Object} menuObj  
 */
function closeMenu(menuObj) {
	try {
		// 隐藏菜单孩子内容
		hideMenuChilds(menuObj);
		// 线性关闭菜单
		$({
			// 起始值
			countNum: menuHeight
		}).animate({
			// 最终值
			countNum: 0
		}, {
			// 动画持续时间
			duration: aniTime,
			easing: "linear",
			step: function () {
				// 设置每步动画计算的数值
				menuObj.css('height', Math.floor(this.countNum));
			},
			complete: function () {
				// 设置动画结束的数值
				menuObj.css('height', Math.floor(this.countNum));
				// 隐藏菜单内容
				menuObj.hide();
				//将菜单孩子内容展现出来，要不再次开启时高度获取的不对
				showMenuChilds(menuObj);
				// 重新给菜单高度设置成自适应
				menuObj.css('height', 'auto');
				isStart = false;
			}
		});
	} catch (e) {
		console.log('COMBOBOX==' + e.description);
	}

}